/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2008，所有权利保留。
 * 
 * 文件名：	OptimalPathSearcher.java
 * 模块说明：	
 * 修改历史：
 * Jan 10, 2008 - linhui - 创建。
 */
package com.hd123.rumba.upgrade.impl;

import java.util.List;

/**
 * 最短路径搜索具体实现。
 * 
 * @author linhui
 * 
 */
public class OptimalPathSearcher implements IPathSearcher {

  private VGraph graph;

  public void addEdge(String from, String to) throws Exception {
    graph.addEdge(from, to);
  }

  public List<String> search(String from, String to) throws Exception {
    List<String> path = graph.getShortestPath(from, to);
    if (path == null)
      return null;
    if (path.size() == 0)
      return null;
    if (!path.get(0).equals(from) || !path.get(path.size() - 1).equals(to))
      return null;
    return path;
  }

  public OptimalPathSearcher() {
    graph = new VGraph();
  }
}
